package com.zy.smarthome.common.util;

import com.zy.smarthome.common.StrAndHex;
import io.netty.buffer.ByteBuf;
import org.apache.commons.lang3.StringUtils;

/**
 * 将 ByteBuf 数据转换成 16进制字符串
 *
 * @author wjming
 */
public class StrUtil {
    /**
     * 将发送过来的字符串像转化成16进制字符串，然后再字符串转化成大写返回
     *
     * @param msg
     * @return String
     */
    public static String getHexStr(Object msg) {
        ByteBuf buf = (ByteBuf) msg;
        //创建目标大小的数组
        byte[] barray = new byte[buf.readableBytes()];
        //把数据从bytebuf转移到byte[]
        buf.getBytes(0, barray);
        //将byte[]转成字符串用于打印
        String cmd = StrAndHex.byte2HexStr(barray).replace(" ", "");
        return StringUtils.upperCase(cmd);
    }
}
